public interface ILinkedList {
    //链表节点
    class ListNode{
        //链表中存储的数据
        int val;
        //定义链表的后继节点
        ListNode next;
        //定义链表的前驱节点
        ListNode prev;
        //带参数的构造方法
        public ListNode(int val){
            this.val = val;
        }
    }

    //求链表长度
    int GetSize();

    //遍历链表并打印
    void DisPlay();

    //头插节点
    ListNode AddFront(int val);

    //尾插节点
    ListNode AddBack(int val);

    //在任意位置插入节点
    ListNode AddIndex(int pos,int val);

    //在指定位置前面插入节点
    ListNode findIndexSubOne();

    //判断链表是否包含某个数据
    boolean contain();

    //删除第一次出现val的节点
    ListNode DeleteVal();

    //判断链表是否为空
    boolean IsEmpty();

    //清空链表
    void clear();
}
